#include <stdio.h>
#define true 1
#define false 0
#define bool int

void cycle(bool *arr,int depth);
bool judge(bool *arr);
void print_res(bool *arr);

int main() {

	bool people[6]= {true};
	cycle(people, 1);

	return 0;
}

void cycle(bool *arr,int depth) {
	if(depth==7) {
		if(judge(arr))
			print_res(arr);
	} else {
		arr[depth-1]=true;
		cycle(arr,depth+1);
		arr[depth-1]=false;
		cycle(arr,depth+1);
	}
}
bool judge(bool *arr) {
	if(arr[0]==false && arr[1]==false) return false;
	int count=0;
	if(arr[0]) count++;
	if(arr[4]) count++;
	if(arr[5]) count++;
	if(count<2) return false;
	if(arr[0]&&arr[4]) return false;
	if(arr[1]^arr[2]) return false;
	if(!(arr[2]^arr[3])) return false;
	if(!(arr[3]==false&&arr[4]==false)) return false;

	return true;
}
void print_res(bool *arr) {
	int i;
	for(i=0; i<6; i++) if(arr[i]) printf("%c\t",'A'+i);
}
